By way of example, an information processing system may comprise a set of computing devices (e.g., servers) that host one or more application programs (applications) that utilize and generate data that is stored in a data storage system. In information processing systems that implement virtualization to provide a layer of abstraction over the physical server hardware, the applications are typically executed by one or more compute nodes in virtual processing elements or virtual processors such as, for example, containers or virtual machines. The input and output data associated with execution of an application is stored or persisted within the particular data storage system implemented by the information storage system.
Furthermore, the set of computing devices of the information processing system may be part of a data center in the form of a cloud-based computing environment which hosts applications for multiple tenants. The cloud-based computing environment may employ existing cloud services such as Platform-as-a-Service (PaaS) and Infrastructure-as-a-Service (IaaS) that enable efficient development and deployment of applications for application developers and owners.
As new applications are composed (e.g., microservices) or imposed (e.g., monolithic or legacy applications) via containers and onto a PaaS or IaaS, this creates challenges to the binding of applications to persistent data. Today's containers are distributed across available infrastructure components, and binding is carried out via centralized non-volatile primary storage. The binding is called out in manifests when the applications are composed. The current method of binding containers to primary storage is based upon existing data access methods (e.g., retrieve from primary storage such as storage arrays and load into memory resident on the host).
Thus, applications have typically stored their data between two tiers, i.e., a memory tier and a storage tier. However, persistent storage (referred to as PMEM) has begun to find use in some information processing systems. PMEM is accessed in a similar manner as volatile memory (e.g., dynamic random-access memory or DRAM) using processor load and store instructions; however, PMEM persists data in a non-volatile manner similar to a storage array.